package com.meritit.portal.util;


/**
 * 自定义格式化类，提供了格式化、转换和验证三种类型的格式化方式，
 * 可根据需求扩展不同的格式化规则。
 * @author miaoyu
 * @since 2010-9-5
 */
public class CustomerFormatter{
	
	// 去除电话号码中的空格
	public final static String REMOVESPACES = "Remove spaces from phone number";
	// 中文破折号转换
	public final static String CHANGELINE = "CHANGE POZHEHAO";
	// 验证电话号码是否为纯数字
	public final static String VALIDATEPHONENUMBER = "Validate phone number";
	
	/**
	 * 用作格式化的方法
	 * @param value:被格式化的字符串
	 * @param expression:格式化表达式
	 */
	public static String format(String value, int len) {
		String result = value;
		if(len > 0 && result!=null && result.length()>len){
			result = result.substring(0, len) + "...";
		}
		return result;
	}

	/**
	 * 用作转换的方法
	 * @param value:被转换的字符串
	 * @param expression:转换表达式
	 */
	public static String translate(String value, String expression) {
		String result = value;
		if (expression.equals(REMOVESPACES)) {
			result = result.replaceAll(" ", "");
		}else if(expression.equals(CHANGELINE)) {
			result = result.replaceAll("——", "&mdash;");
		}
		return result;
	}

	/**
	 * 用作验证的方法
	 * @param value:被转换的字符串
	 * @param expression:转换表达式
	 */
	public static boolean validate(String value, String expression) {
		boolean result = true;
		// Reset error message
		if (expression.equals(VALIDATEPHONENUMBER)) {
			// Check to see if phone number contains letters
			for (int index = 0; index < value.length(); index++) {
				if (value.charAt(index) < 48 || value.charAt(index) > 57) {
					result = false;
				}
			}
		}
		return result;
	}
	
	/**
	 * 用作业务入口大图标名称生成小图标名称
	 * @param imgName 大图标名称
	 */
	public static String big2small(String imgName) {
		String result = imgName;
		if (result!=null && result.length()>0) {
			result = result.replace(".", "-16.");
		}
		return result;
	}
}
